// interface接口   ts中接口用来定义对象的类型   是对对象的属性和方法的描述

//当不用接口来定义对象的类型时  写多个的时候，代码重复量比较大
let objName :{name:string,age:number, sex?:string};
objName = {
    name :"toom",
    age:18,
    sex:"女",
}

let objName1 :{name:string,age:number, sex?:string};
objName1 = {
    name :"mmmm",
    age:20,
    sex:"女",
}



// 当用interface接口时  
// readonly 只读属性 一旦赋值之后再也不能更改 改变会报错
// ? 可选属性
// 在接口当中规定的数据类型的属性必须按照规定的走，多了少了都不行
interface objs{
    readonly name :string,  //readonly 只读属性
    age:number,
    sex?:string, //可写可不写
}
let np1:objs = {
    name:"jack",
    age:20,
    sex:"男"
}
let np2:objs = {
    name:"adc",
    age:19,
    
}
/* 
类型检查器会自动查看对象内部的属性是否与接口当中的描述是否一致，不一致就会报错。

*/







export {
    objName,
    objName1,
    np1,
    np2,
}

